package com.fl.nj.service;

import com.fl.nj.entity.Device;

import java.util.List;

/**
 * 设备Service接口
 * 用于定义设备的业务逻辑方法
 */
public interface DeviceService {
    /**
     * 保存设备
     * @param device 设备对象
     */
    void save(Device device);

    /**
     * 更新设备
     * @param device 设备对象
     */
    void update(Device device);

    /**
     * 根据ID获取设备
     * @param id 设备ID
     * @return 设备对象
     */
    Device getById(Long id);

    /**
     * 根据设备名称获取设备
     * @param deviceName 设备名称
     * @return 设备对象
     */
    Device getByDeviceName(String deviceName);

    /**
     * 获取所有设备
     * @return 设备列表
     */
    List<Device> getAll();
    
    /**
     * 按设备名称模糊搜索设备
     * @param deviceName 设备名称关键词
     * @return 匹配的设备列表
     */
    List<Device> searchByDeviceName(String deviceName);

    /**
     * 根据区域ID获取设备列表
     * @param areaId 区域ID
     * @return 设备列表
     */
    List<Device> getByAreaId(Long areaId);

    /**
     * 删除设备
     * @param id 设备ID
     */
    void delete(Long id);

    /**
     * 获取设备的数据库数量
     * @param deviceId 设备ID
     * @return 数据库数量
     */
    int countDatabases(Long deviceId);
}